﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;

namespace passwords.Models
{
    internal class MyEncoder
    {
        /// <summary>
        /// 明文
        /// </summary>
        public string Plaintext { get; set; }//属性

        /// <summary>
        /// 密文
        /// </summary>
        public string Cypher { get; set; }//每个三斜杠前要空一行，类名第一个字母大写

        /// <summary>
        /// 密钥
        /// </summary>
        public string Key { get; set; }

        /// <summary>
        /// 加密
        /// </summary>
        public void Encode()//成员函数要加属性
        {
            //todo加密过程
            //!!!字符串就相当于一个字符数组，不用转换
           for(int i = 0; i< Plaintext.Length;i++)
            {
                int number = (CharToNo(Plaintext[i]) + CharToNo(Key[i%Key.Length])) % 26;
                //字符串加一个字符 是可以的
                Cypher += Convert.ToChar(number + 'a');
            }

        }

        /// <summary>
        /// 返回制定字符在字母表中的序号
        /// </summary>
        /// <param name="ch"></param>
        /// <returns></returns>
        private static int CharToNo(char ch)//为什么是private
        {
            return ch - 'a';
        }

    }
}

